package es.ucm.is.www.GUI.client.movements;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * <p>Title: CoordinatesGUI.java </p>
 *
 * <p>Description: Tipo de datos serializable usado para comunicar las coordenadas de las rutas de la interfaz a la Base de Datos</p>
 *
 * <p>Copyright: Javier Pla/p>
 *
 * @author Javier Pla
 * @version 1.0
 * @see Route
 */
public class CoordinatesGUI implements IsSerializable, Cloneable{
	
	/**
	 * Coordenada X.
	 */
	private int x;
	/**
	 * Coordenada Y.
	 */
	private int y;
	/**
	 * Constructora de la clase
	 */
	public CoordinatesGUI() {}
	/**
	 * Constructora de la clase
	 * @param xx: posicion x
	 * @param yy: posicion y
	 */
	public CoordinatesGUI(int xx,int yy) {
		x=xx;y=yy;
	}
	
	/**
	 * Devuelve el valor de la coordenada x.
	 * @return coordenada X
	 */
	public int getX() {return x;}
	
	/**
	 * Devuelve el valor de la coordenada y.
	 * @return coordenada Y
	 */
	public int getY() {return y;}
	
	/**
	 * Setea el valor de la coordenada x.
	 * @param xx coordenada X
	 */
	public void setX(int xx) {x=xx;}
	
	/**
	 * Setea el valor de la coordenada y.
	 * @param yy coordenada X
	 */
	public void setY(int yy) {y=yy;}
	
	/**
	 * Incrementa valor coordenada X
	 */
	public void incX() {x++;}
	
	/**
	 * Decrementa valor coordenada X
	 */
	public void decX() {x--;}
	
	/**
	 * Incrementa valor coordenada Y
	 */
	public void incY() {y++;}
	
	/**
	 * Decrementa valor coordenada X
	 */
	public void decY() {y--;}
	
	public Object clone() {
		CoordinatesGUI clone=new CoordinatesGUI(x,y);
		return clone;
	}
	
	public boolean equals(Object co) {
		CoordinatesGUI aux=(CoordinatesGUI)co;
		return (x==aux.x && y==aux.y);
	}
	
}
